package grupo1.fotomultas.Fotomultas.ui;

import grupo1.fotomultas.Fotomultas.HomeZona;
import grupo1.fotomultas.Fotomultas.Zona;
import grupo1.fotomultas.Fotomultas.Infracciones.HomeTipoInfraccion;
import grupo1.fotomultas.Fotomultas.Infracciones.TipoInfraccion;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.layout.ColumnLayout;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Label;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.widgets.Selector;
import org.uqbar.arena.widgets.TextBox;
import org.uqbar.arena.windows.SimpleWindow;
import org.uqbar.arena.windows.WindowOwner;

@SuppressWarnings("serial")
public class IngresarCapturaWindow extends SimpleWindow<IngresarCaptura> {

	private static final String ACEPTAR_INGRESO = "aceptarIngreso";
	private static final String CANCELAR_INGRESO = "cancelarIngreso";

	
	public IngresarCapturaWindow(WindowOwner parent) {
		super(parent, new IngresarCaptura());
		setTitle("Ingresar captura");
		setTaskDescription("Ingresar una nueva captura manualmente");
	}

	@Override
	protected void createFormPanel(Panel mainPanel) {
		Panel editor = new Panel(mainPanel);
		editor.setLayout(new ColumnLayout(2));
		
		new Label(editor).setText("Zona");
		
		new Selector(editor)
			.setContents(HomeZona.instance().getZonas(), Zona.DESCRIPCION)
			.bindValueToProperty(IngresarCaptura.ZONA);

		new Label(editor).setText("Tipo Infraccion");
		
		new Selector(editor)
			.setContents(HomeTipoInfraccion.instance().getTipoInfracciones(), 
					TipoInfraccion.NOMBRE)
			.bindValueToProperty(IngresarCaptura.TIPO_INFRACCION);
		
		new Label(editor).setText("Imagen (ubicacion)");
		new TextBox(editor)
			.bindValueToProperty(IngresarCaptura.PATH_FOTO);

	}
	
	@Override
	protected void addActions(Panel actionsPanel) {
		new Button(actionsPanel)
			.setAsDefault()
			.disableOnError()
			.setCaption("Cancelar")
			.onClick(new MessageSend(this, CANCELAR_INGRESO));

		new Button(actionsPanel)
			.setAsDefault()
			.disableOnError()
			.setCaption("Aceptar")
			.onClick(new MessageSend(this, ACEPTAR_INGRESO));
	}

	public void cancelarIngreso() {
		System.out.println("Se cancela el ingreso de la captura");
		this.close();
	}
	
	public void aceptarIngreso() {
		System.out.println("Se acepta el ingreso de la captura");
		this.getModel().ingresarCaptura();
		this.close();
	}
}
